/**
 * 
 * 动态规划：第几天的收益最大是多少？ 对于当天 是否持有股票，分为两种情况
 * 当天未持有： 则看前一天持有或未持有： dp[i][0] = max{ dp[i-1][0]，dp[i-1][1] + prices[i]} （如果第一天持有，而今天没有，那么要卖掉）
*  持有： dp[i][1] = max {dp[i-1][1],dp[i-1][0] - prices[i]  }
   两者求最大值
   
 */

/**
 * @param {number[]} prices
 * @return {number}
 */
var maxProfit = function (prices) {
    let dp0 = 0
    let dp1 = -prices[0]
    for (let i = 1; i < prices.length; i++) {
        let temp0 = Math.max(dp0, dp1 + prices[i])
        dp1 = Math.max(dp1, dp0 - prices[i])
        dp0 = temp0
    }
    return dp0
};

console.log(maxProfit([7, 1, 6, 3, 6, 1]))